1. Field of the Invention
The present invention relates to a controller for controlling an industrial robot, and particularly to a robot controller capable of improving an accuracy of a motion path of a robot in overriding operation or before and after a temporary stop.
2. Description of the Related Art
When a robot needs to move at a speed lower than a speed designated by an operation program (hereinafter, referred to as "program speed"), there is widely used a method of overriding a lowering operational speed by a constant rate in respect of program speed. For example, with regard to an operation program which is newly created or modified, a play-back operation (test run) is carried out by designating overriding at a low rate to thereby confirm a motion path while avoiding danger.
An operation program in which path is confirmed to be proper is played back by a controller of a robot in charge of actual operation and it is common practice to set overriding which is designated in play back operation to "100%" instructing motion in accordance with the program speed or to a high rate near thereto.
However, in the case of using a conventional robot controller, there causes a deviation between a path which is realized when movement speed is lowered by overriding and a path which is realized at the program speed (when overriding is designated to 100%). The path deviation is provided with a property in which the lower the designated override value, the larger it becomes. That is, when a robot comes near to a corner portion during operation under overriding at a low rate, except when positioning is carried out at a corner, in any of respective operational styles of axial and linear motion and circular motion, path of a front end point of a tool is varied considerably by a designated override value.
Accordingly, in confirming an actual path, it is the current state to try to confirm an accurate path by starting operation designated with overriding at a low rate and repeating a test run while gradually increasing overriding. Such a deviation in path is caused not only in designating overriding at a low rate but also in changing the override value during movement or before and after temporary stop of a robot (in deceleration and acceleration) with similar modes.
After all, according to the conventional technology, a long period of time is required in repetition of a test run after instructing positions until a robot is operated with overriding at 100%. Further, when a processing of temporary stop is carried out in program reproducing operation, in accordance with deceleration, a position of a front end point of a tool is deviated from a path of the tool center point which is drawn in normal operation where the processing of temporary stop is not carried out (hereinafter, referred to as "normal path") and is stopped at a position which is not present on the normal path. Incidentally, in this specification, "temporary stop" does not include "emergency stop" signifying that outputs for instructing movement of servos are instantaneously stopped in response to an output of alarm.
Similarly, path of the tool center point immediately after restarting the program reproduction after temporary stop is also deviated from the normal path and considerable distance of movement is required for the tool to coincide with the normal path. Such a deviation in path constitutes cause of making an end effector such as a robot hand or the like interfere with an outside object jig, workpiece, other installed device or the like).
FIG. 1 shows an outline of processing according to a conventional system which are carried out by a robot controller from motion planning to outputting of motion commands to a servo system in a play-back operation of a program in order to investigate the above-described problem. A total of normal processing in accordance with the conventional system can grossly be classified into a motion planning section, an interpolation processing section and a filtering section and the respective sections can be classified into two of a series for respective-axes motion and a series for coordinate motion (straight-line motion, circular motion and so on).
The motion planning section is a section for creating a motion plan for a robot in accordance with designated content of the operation program (target motion position, motion style, program speed or the like) in which when a motion style designated by the operation program is respective-axes motion, the motion plan is created at an axial motion planning section and when the motion style designated by the operation program is coordinate motion (straight-line motion, circular motion or the like), the motion plan is created at a coordinate-motion planning section.
Overriding is considered at the motion planning section, and the program speed multiplied by overriding (percent) constitutes an instruction speed output in respect of the interpolation processing section. A block functioning as an operational shutter for controlling transmittance of the instruction speed output from the motion planning section to the interpolation processing section is installed between the motion planning section and the interpolation processing section. The operational shutter is opened at each time of creating the instruction speed output for conveying the instruction speed output to the interpolation processing section.
Upon receiving the instruction speed output, the interpolation processing section carries out interpolation processing on each axis or on an orthogonal coordinate system at each calculation processing period (ITP) and calculates and outputs a motion amount at each ITP. At the filter section successive thereto, filtering is carried out in respect of an output from the interpolation processing section with a predetermined time constant. The processing is carried out to make movement of acceleration/deceleration smooth by controlling acceleration/deceleration of the robot.
Outputs which have been filtered at respective axial filter processing sections are also outputted to servos of respective axes (J1 through J6) after having been filtered. Further, in case of coordinate motion, a processing of so-called inverse transformation is needed to carry out transformation from an orthogonal coordinate system to the respective axial coordinate systems. Although in respect of the processing of inverse transformation, the inverse transformation is frequently carried out before the filtering operation, it may be carried out after the filtering operation.
When an instruction of a temporary stop is outputted at inside of the robot controller in play-back operation, the interpolation processing section is held by reverting the operational shutter to OFF and the interpolation processing is interrupted. An output which has been formed by the interpolation processing before outputting hold instruction, is outputted to a servo after having been filtered at the filtering section. When the motion command outputted to the servo is exhausted by moving each axis, the input to the servo is stopped and the robot is stopped.
When a path smoothly connecting two operations is designated by the operation program, two operational instructions are processed in superimposed manner. In such a case, when a tangential direction of movement at an end point of former operation in the two operations and a tangential direction of movement at a start point of latter operation differ from each other, a rounded corner is formed. An overlap amount of motion at this occasion controls a shape of a pivoting inner periphery of the corner.
At this occasion, consider a relationship between high or low of overriding and the overlap amount of motion. When overriding is low, the instruction speed is naturally lowered, but, time constant of acceleration or deceleration processing at the filter section remains unchanged, so that, the overlap amount of motion is reduced. This signifies that an amount of the pivoting inner periphery of the corner is reduced (that is, radius of curvature of roundness is reduced). Conversely, when overriding is high, the instruction speed is naturally increased and the overlap amount of motion is increased under the time constant of acceleration or deceleration processing at the same filtering section. As a result, amount of the pivoting inner periphery of the corner is increased (that is, radius of curvature of roundness is increased).
An explanation will be given of the above-described phenomenon by a simple example in reference to FIGS. 2a, 2b, 2c, 2d and 2e. According to the example, there is considered an operation program in which operation of linearly moving toward position [1] at 2000 mm/sec and operation of linearly moving toward position [2] at 1000 mm/sec and stopping (positioning) with smoothness of 100%. In order to study a phenomenon accompanied by passing the corner, assume a case in which a linear path toward position [1] is directed in -X-axis direction and a linear path toward position [2] is directed toward +Y-axis direction. Transition of instruction speed outputs after filtering the respective operations is illustrated in parallel in FIG. 2b and notations "a" and "b" generally represent overlap of the operations.
Now, assuming that 100% is set as high overriding and 50% is set as low overriding, overlaps a1 and b1 after filtering in overriding at 100% and overlaps a2 and b2 after filtering in overriding at 50% are respectively shown in FIG. 2c. That is, the filtering operations are carried out with the same time constant regardless of the fact that overriding operations differ from each other by a factor of 2 and, therefore, considerable difference is caused in the overlap amount of motion. As a result, realized loci differ from each other as shown by notations c1 and c2 in FIG. 2d. Roundness of the corner portion is large in cl and small in c2.
Next, consider a case in which movement is held by temporary stop at point .beta. in passing the corner represented by position [1] in case of overriding at 100%. As shown in FIG. 2e, after time point "t" at which the movement is held, an output from the interpolation processing section for operation moving toward position [2] is rapidly reduced compared with the case in which the movement is not held (designated by broken line "d") and only remaining instruction is outputted. Therefore, an effect of rapidly reducing overlap of two operations after filtering is resulted at a midway of movement at the corner.
As a result, the path is shifted from point P in correspondence with the time point "t" at which the movement is held to a side of position [2] as a representative point of the corner to thereby constitute path c3 and is stopped at point Q which is deviated from path c1 in the case in which the movement is not held (caution is required to the fact that the movement toward position [1] is exhausted). When the reproduction is restarted after the temporary stop, the path of the robot follows path designated by notation c4 from point Q (it coincides with c1 at a midway).
It is apparent that a path deviation phenomenon similar thereto is caused also in the case in which overriding is switched in passing the corner. This is because the filtering is carried out under the same time constant and, therefore, overlap amount of two operations is varied in accordance with large or small of an output from the interpolation processing section and, as a result, path is changed.
That is, in the various cases of causing the path deviation (high or low of overriding, switching of overriding during operation, before and after temporary stop), there is constituted a common factor in which transition of an input level in the filtering operation differs from that in normal operation. It can be considered that a difference is caused in an operational path at a portion where different operations in two directions overlap since the filtering operation is carried out under the same time constant even when the input level in the filtering operation is varied.